

package vinterprojekt.util;

import javax.swing.JOptionPane;
import java.io.PrintStream;
import java.io.ByteArrayOutputStream;


/** Centraliseret fejlhåndtering
 *
 * @author jacob
 */
public class ErrorHandler
{
    /**
     * viser parameter e's stacktrace i en dialogboks. Hvis fatal er true lukker programmet.
     * @param e Exception der skal rapporteres
     * @param fatal Hvis true lukker programmet
     */
    public static void error(Exception e, boolean fatal)
    {
        error(readStackTrace(e), fatal);
    }

    /**
     * Se error(Exception, Boolean)
     * @param msg String der beskriver en fejl
     * @param fatal Hvis true lukker programmet
     */
    public static void error(String msg, boolean fatal)
    {
        JOptionPane.showMessageDialog(null, msg, "Fejl:", JOptionPane.ERROR_MESSAGE);

        if (fatal)  System.exit(1);
    }

    private static String readStackTrace(Exception e)
    {
        ByteArrayOutputStream bout = new ByteArrayOutputStream();
        PrintStream pr = new PrintStream(bout);

        e.printStackTrace(pr);

        byte[] data = bout.toByteArray();
        return new String(data);
    }
}
